The present invention relates to visualization of models, and more specifically to techniques for declaratively mapping a canonic model representation to one or more visual representations.
In the computing domain, information is commonly stored in the form of models. For example, a particular model may be used to store information for an application. The model may store information related to various entities or components of the application, information describing inputs or outputs of the components, information describing dependencies between the various components and their input and outputs, a component's response to signals, and other information for the application. The model that is used for storing information for an application may be configured by a designer of the application after taking into consideration various factors such as the domain in which the application is to be used, the memory resources available for storing the information, the computing resources available for processing the model, tools to be used for manipulating the model, and other factors. A model representation (also referred to as canonic model representation) thus provides a convenient way to persist information for an application in a machine-readable representation.
While a canonic model representation is the preferred form in which models are persisted and manipulated by software tools, it is not very well suited for human users, due to its usually technically verbose nature. Therefore, a model representation is usually transformed to a visual representation and the visual representation output to the user. The user may use the visual representation to comprehend the model information and also to manipulate or make changes. The visual representation thus provides a visual interface through which the user perceives and manipulates the model representation.
The transformation from a canonical model representation to a visual representation is usually performed by visualization tools (e.g., design tools) used by the user. These transformations depend on the graphics engine used by the tool to render the visual representation, on the characteristics of the output device used to output or display the visual representation, and other factors that are specific to the manner in which the visual representation will be displayed to the user.
Conventionally, such transformations from the model representation to the visual representation are hard-coded into the visualization tool implementation. The model representation is thus tightly coupled to the graphics engine of the renderer and the output device. Due to this tight coupling, many times, different model representations have to be provided for different renderers. As a result, it becomes very difficult to evolve visual representations to meet changing design-time needs, or to migrate visual representations between different visualization tools.